home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpg3d / source / lg3dmatw.asm < prev    next >
Encoding:
Assembly Source File  |  1996-03-03  |  983 b   |  56 lines

  1.  
  2. ; wg3dmat.asm
  3. ;
  4. ; Copyright (c) 1996 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. ; Functions
  7. PUBLIC _FLPMultMatrix_
  8.  
  9. .DATA
  10.  
  11. .CODE
  12. .486
  13.  
  14. ; _FLPMultMatrix_ ( G3DMATRIX Mat1, G3DMATRIX Mat2, G3DMATRIX Result )
  15. ;
  16. ; EAX = Mat1, EDX = Mat2, EBX = Result
  17.  
  18. _FLPMultMatrix_ PROC C
  19.   push ECX
  20.   push ESI
  21.   push EDI
  22.  
  23.   mov  ECX, 4
  24.  
  25.   MatrixLoopOut :
  26.     mov  ESI, 4
  27.     mov  EDI, EDX
  28.     MatrixLoopIn :
  29.       fld  dword ptr [EAX]
  30.       fmul dword ptr [EDX]
  31.       fld  dword ptr [EAX+1*4]
  32.       fmul dword ptr [EDX+4*4]
  33.       fld  dword ptr [EAX+2*4]
  34.       fmul dword ptr [EDX+8*4]
  35.       fld  dword ptr [EAX+3*4]
  36.       fmul dword ptr [EDX+12*4]
  37.       faddp st(1), st
  38.       faddp st(1), st
  39.       faddp st(1), st
  40.       add  EDX, 4
  41.       add  EBX, 4
  42.       fstp  dword ptr [EBX-4]
  43.       dec  ESI
  44.       jnz  MatrixLoopIn
  45.  
  46.     mov  EDX, EDI
  47.     add  EAX, 4*4
  48.     Loop MatrixLoopOut
  49.   pop  EDI 
  50.   pop  ESI
  51.   pop  ECX
  52.   ret
  53. _FLPMultMatrix_ ENDP
  54.  
  55. END
  56.